#include <DS1302.h>



unsigned char Alarm_Hour=6;          // 闹钟小时设置
unsigned char Alarm_Minute=30;        // 闹钟分钟设置
bool Always=false;                 //是否不间断地输出时间到串口（每隔 1 秒）

void setup()
{

  DS1302_Init();
  Serial.begin(9600); 
  Serial.println("欢迎使用!");  
  DS1302_GetTime(&DS1302Data);
  Display_RTCC();
  Serial.println("输入 \"help\" 获得帮助");
}

//显示时间
void Display_RTCC()
{
  
  if(DS1302Data.Year < 10)
  {
    Serial.print("200");
  }
  else
  {
    Serial.print("20");
  }
  Serial.print(DS1302Data.Year);
  Serial.print('-');
  Serial.print(DS1302Data.Month);
  Serial.print('-');
  Serial.print(DS1302Data.Day);

  Serial.print("   ");

  switch(DS1302Data.Week)
  {
    case 1:
        Serial.println("Mon");         //显示星期一
        break;
    case 2:
        Serial.println("Tue");         //显示星期二
        break;
    case 3:
        Serial.println("Wed");         //显示星期三
        break;
    case 4:
        Serial.println("Thu");         //显示星期四
        break;
    case 5:
        Serial.println("Fri");         //显示星期五
        break;
    case 6:
        Serial.println("Sat");         //显示星期六
        break;
    case 7:
        Serial.println("Sun");         //显示星期日
        break;
    default : break;            
  }

  Serial.print(DS1302Data.Hour);
  Serial.print(':');
  Serial.print(DS1302Data.Minute);
  Serial.print(':');
  Serial.println(DS1302Data.Second);
}

// 获取串口输入
void Scan_Input()
{
  String comdata=""; 
  while (Serial.available() > 0)  
    {
     comdata += char(Serial.read());
     delay(2);
    }
    
    if(comdata.length()==20 && comdata.startsWith("set"))
    {
      Set_Time(comdata);
    }
    else if(comdata=="show")
    {
      Serial.println("The Time Now Is:");
      Show_RTCC();
    }
    else if(comdata=="help")
    {
      help();
    }
    else if(comdata.length()==11 && comdata.endsWith("hours"))
    {
      Set_HourSystem(comdata);
    }


}





//帮助内容
void help()
{
  Serial.println("************************************* HELP *****************************************");
  Serial.println("Type \"set YY MM DD WEEK HH MM\" To Set The Time!");
  Serial.println("Such As Type \"set 08 08 08 1 12 00\" To Set The Time As 2008-8-8 Monday 12:00");
  Serial.println("Type \"show\" To Display The Time Now!"); 
  Serial.println("Type \"set 24hours\" or \"set 12hours\" To Change The Hour System"); 
  Serial.println("************************************* HELP *****************************************");
}

void loop()
{
  Scan_Input();
  DS1302_GetTime(&DS1302Data);        //获取当前RTCC值
  
}